package com.dzm;

import java.io.*;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * 作者：Dzm
 * 时间：2024-07-26-19:04
 * 功能：
 */
public class Test03 {

    /**
     * 读取e:\\hello.txt 文件，hello.txt 中保存内容如下 （10分）
     * 12.12,10.30,23.84,56.23
     * 要求把hello.txt 中的数字精确到小数点后两位倒序输出
     * 分析：
     *      1.读取文件中的内容
     *      2.将内容进行分割处理
     *      3.将数字字符串转换后精确到小数点后两位
     *      4.将数字存入集合并倒序排序
     * @param args
     * @throws IOException
     */
    public static void main(String[] args) throws IOException {
        //文件地址
        FileInputStream fis = new FileInputStream("Test-03\\src\\com\\dzm\\file\\hello.txt");
        InputStreamReader isr = new InputStreamReader(fis);
        BufferedReader br = new BufferedReader(isr);

        //读取文件内容
        String s = br.readLine();

        //将数据以，分开
        String[] split = s.split(",");
        //设置小数点保留后两位
        NumberFormat nf = NumberFormat.getInstance();
        nf.setMaximumFractionDigits(2);
        //存入List集合
        List<Double> list = new ArrayList<>();
        for (String numStr : split) {
            //保存小数点后两位
            String format = nf.format(Double.valueOf(numStr));
            list.add(new Double(format));
        }

        //以倒序排序
        Collections.sort(list, (a, b)-> {return (int) (b - a);});

        //输出
        list.forEach(n -> System.out.print(n + " "));

    }
}
